package com.cicoding.utils;

import com.aspose.pdf.Document;
import com.aspose.pdf.License;
import com.spire.doc.packages.sprAc;
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfBlendMode;
import com.spire.pdf.graphics.PdfTemplate;
import com.spire.pdf.widget.PdfPageCollection;

import java.awt.geom.Point2D;
import java.io.File;
import java.io.InputStream;

public class PdfUtils {

    /**
     * pdf叠加合并
     *
     * @param modelFile 模板pdf
     * @param textFile  文字pdf
     * @return
     */
    public static File mergePdf(File modelFile, File textFile) {
        if (!getLicense()) {
            return null;
        }

        Document pdfdoc1 = new Document(modelFile.getAbsolutePath());
        Document pdfdoc2 = new Document(textFile.getAbsolutePath());

        pdfdoc1.getPages().add(pdfdoc2.getPages());

        pdfdoc1.save("MergePages.pdf");
        return new File("MergePages.pdf");
//        //加载两个PDF文档
//        PdfDocument pdf1 = new PdfDocument();
//        int count2 = pdf1.getPages().getCount();
//        pdf1.loadFromFile(modelFile.getAbsolutePath());
//        PdfDocument pdf2 = new PdfDocument();
//        int count1 = pdf2.getPages().getCount();
//        pdf2.loadFromFile(textFile.getAbsolutePath());
//
//
//        //根据pdf1的第一页绘制模板
//        PdfTemplate template = pdf1.getPages().get(0).createTemplate();
//
//
//        //获取pdf2的第二页
//        PdfPageBase page = pdf2.getPages().get(0);
//
//
//        //设置透明度和重叠样式
//        page.getCanvas().setTransparency(1f, 1f, PdfBlendMode.Normal);
//
//
//        //将pdf1的第一页内容写入pdf2的第二页中的指定位置
//        page.getCanvas().drawTemplate(template, new Point2D.Float(0, 0));
//
//        //添加一个空白页，目的为了删除jar包添加的水印，后面再移除这一页
////        pdf2.getPages().add();
//
//        //保存pdf2
//        pdf2.getPages().add();
//        pdf2.saveToFile("MergePages.pdf", FileFormat.PDF);
//        pdf2.dispose();
////        pdf2.getPages().removeAt(count-1);
//
//        PdfDocument mergePage = new PdfDocument();
//        mergePage.loadFromFile("MergePages.pdf");
//        int count = mergePage.getPages().getCount();
//        mergePage.getPages().removeAt(count-1);
//        mergePage.saveToFile("MergePages.pdf");
//        mergePage.dispose();
//
//        return new File("MergePages.pdf");
    }

    public static boolean getLicense() {
        boolean result = false;
        try {
            InputStream is = PdfUtils.class.getClassLoader().getResourceAsStream("\\license.xml");
            License aposeLic = new License();
            aposeLic.setLicense(is);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
}
